#!/usr/bin/env python3
"""
pytest全局配置文件
"""

import sys
import os
from pathlib import Path

# 添加项目根目录到Python路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))

# 确保环境变量加载
from dotenv import load_dotenv
load_dotenv(project_root / ".env")

import pytest
import asyncio
from typing import Generator


@pytest.fixture(scope="session")
def event_loop() -> Generator[asyncio.AbstractEventLoop, None, None]:
    """创建事件循环用于异步测试"""
    loop = asyncio.get_event_loop_policy().new_event_loop()
    yield loop
    loop.close()


@pytest.fixture(scope="session", autouse=True)
def setup_test_environment():
    """设置测试环境"""
    # 确保测试环境变量
    os.environ.setdefault("TESTING", "true")
    
    # 可以在这里添加其他测试环境设置
    print("\n🚀 开始测试环境设置")
    
    yield
    
    print("\n🎯 测试环境清理完成")


@pytest.fixture
def mock_settings():
    """模拟配置设置"""
    from app.core.config import settings
    return settings